1. Field of the Invention
The present invention relates to a server apparatus that distributes a program which runs on an information processing terminal, as well as a program management system composed of a server apparatus and an information processing terminal, and particularly to technology for the revocation of an information processing terminal attempting an unauthorized use of a program.
2. Description of the Related Art
Following the development of the network in recent years, many electronic commerce systems for conducting commerce, via the network and content distribution systems, for the distribution of contents such as movies and music, have been disclosed. In these systems, not only valuable information such as rights for the use of a content and keys used for billing, but also programs, per se, such as a music player program, can be exchanged among devices connected via the network. Furthermore, aside from the conventional PC, it is predicted that the exchange of programs in this manner shall also be implemented in built-in devices such as a mobile phone, and the like.
Now, if it is possible for a user with malicious intents to illicitly rewrite a program when a commercial system involving billing such as electronic shopping and a content distribution service is implemented via the network, there is a danger that fraudulent transactions such as the purchase of goods and contents free-of-charge through manipulation of billing information, shall be carried out. For that reason, in the case where error correction and supplementing through program updating via the network are carried out, there is a need to verify the validity of a program in order to prevent unauthorized use by a user with malicious intents.
A method that makes use of a digital signature exists as a conventional method for verifying the validity of a program (Refer to official publication of Japanese Laid-Open Patent Application No. 2000-339153, for example). In this method, an encrypted data exchange system using a set of two paired keys, referred to as public key cryptography, is utilized. FIG. 20 is an explanatory diagram for the program validity verification method that makes use of such digital signature.
A program issuer 2000 transmits a public key 2001 to a certification authority (CA) 2010 which is a third-party organization that confirms and guarantees the identity of a program issuer. Subsequently, the certification authority 2010 confirms and examines the identity of the program issuer 2000. In the case where the program issuer 2000 is judged as being authentic, the certification authority 2010 issues a public key certificate 2003, for the public key 2001 of the program issuer 2000, in which a digital signature is attached using a CA private key 2012. The public key certificate 2003 includes information for identifying the identity of a subject of a public key, and indicates that the certification authority 2010 guarantees the identity of the public key subject. The certification authority 2010 then transmits the public key certificate 2003 to the program issuer 2000.
The program issuer 2000 signs a digital signature using a private key 2002, on the program to be distributed to a user 2020, and distributes the public key certificate 2003 as well as the signed program 2004.
The user 2020 obtains a CA public key 2011 from the certification authority 2010, and verifies the signature of the public key certificate 2003 of the program issuer, using the CA public key 2011. In the case where the signature is properly verified, the public key 2001 included in the public key certificate 2003 is used to verify the signature of the signed program 2004. In the case where this signature is properly verified, it can be verified that the distributed program is a program distributed from the program issuer 2000, and that it has not been tampered with.
Accordingly, by attaching the digital signature of the program issuer 2000 to the program, the validity of the program is guaranteed, and the user 2020 can verify that an obtained program 2021 is a program that is rightfully distributed from the program issuer 2000, in this validity verification system.
However, although program validity verification is carried out at the time of distribution in the validity verification system shown in FIG. 20, it is not possible to guarantee validity for the program in an information processing terminal after distribution. Furthermore, details regarding the workings of public key cryptography as well as the certificate, signature, and certification are written in a variety of publications (Refer to “Applied Cryptography”, Bruce Schneier, John Wiley & Sons, Inc. (1996), for example).
As a method for resolving this issue, there is a method where a program is distributed by being encrypted at the program distribution source using a user identifier for the program distribution destination, and a user uses the user identifier to decrypt and execute the program at the time of use (Refer to official publication of Japanese Laid-Open Patent Application No. 07-295800, for example). In this method, unauthorized copying and unauthorized manipulation can be prevented, even if by some chance a program is illicitly copied the program cannot be decrypted and executed unless the user identifier is matched.
Furthermore, a distribution apparatus that can physically prevent unlimited distribution from being carried out, and physically enforce abidance to a contract of use with regard to program copying, by judging the propriety of the distribution according to the difference between the number of program copies and the number of copy authorizations, is disclosed as a program distribution apparatus (Refer to official publication of Japanese Laid-Open Patent Application No. 06-87220, for example).
In this invention, the program distribution apparatus stores, for each program, the information processing apparatus which is the distribution destination, and distributes a program according to the number of copy authorizations and the number of copies.
On the other hand, in the case where a commercial system using the network, which involves billing, such as electronic shopping, and a content distribution service, a method for identifying a user is necessary as the billing of a user is carried out. As one of these methods, there are cases where specific information is such as an ID or a key allocated to each user, is included within a program or within information distributed together with a program. In this case, specific information is allocated to each user, and by managing the specific information at the program distribution source which is the server apparatus-side, a user can be identified based on the specific information, when the user carries out an unauthorized action.
FIG. 21 is a reference diagram of the conventional program management system used between an information processing terminal 2101 and a server apparatus 2102, as well as a server apparatus 2103. Moreover, in FIG. 21, the server apparatuses are separated into the application data server apparatus 2103 and the program server apparatus 2102, for the purpose of explanation.
The information processing terminal 2101 obtains a music player program that can download and play desired music data, from the server apparatus 2102 which is the program distribution source. It is assumed that such music player program includes specific information “0101”. Moreover, in seeking safe distribution, the communication channel is encrypted using a Secure Socket Layer (SSL), preventing acts of hacking such as eavesdropping.
When the user of the information processing terminal 2101 requests for the obtainment of music data, and so on, a music data obtainment request attached with the specific information “0101” is transmitted from the information processing terminal 2101 to the application server apparatus 2103. The server apparatus 2103 possesses a revocation list (CRL: certificate revocation list) for excluding an unauthorized information processing terminal that executes the music player program. As the specific information “0101” transmitted in time with the music data obtainment request from the information processing terminal 2101 is described in the CRL, the transmission of music data to the information processing terminal 2101 is not carried out. Moreover, in the case where the specific information “0101” is not described in the CRL, the requested music data is sent to the information processing terminal 2101.
In this manner, if the specific information of the program possessed by the information processing terminal 2101 which is carrying out unauthorized program usage is identified, it is possible to revoke the information processing terminal 2101 which is attempting an unauthorized usage, by using the CRL.
Moreover, safe distribution, which protects download data from unauthorized acts by preventing download data manipulation, replacement and eavesdropping, is made possible by the attachment of a digital signature to data to be downloaded from the server apparatus 2102 to the information processing terminal 2101 and the performance of signature verification at the information processing terminal 2101-side.
However, the problem of having an increased processing load on the program distribution source arises in the method described above, where program encryption in compliance with individual user identifiers is carried out at the program distribution source.
Furthermore, the aforementioned method in which a program distribution apparatus stores, for each program, the information processing apparatus which is the distribution destination, and distributes a program according to the number of copy authorizations and the number of copies, is a method in which a program distribution apparatus confirms the ID of the apparatus which is the distribution destination and distributes a program according to the number of copy authorizations, for every distribution request. It is not a method that prevents the unauthorized use of a program.
In addition, in the method shown in FIG. 21 where the server apparatus 2103 uses a CRL in which specific information of programs is described, to perform the revocation of the information processing terminal 2101 attempting an unauthorized usage, even in the case where data obtainment is revoked as being from an unauthorized terminal according to the CRL of the server apparatus 2103 when the information processing terminal 2101 attempts to obtain data illicitly, a problem exists in which the revocation using the CRL of the server apparatus 2103 can be circumvented. This circumvention is carried out through the downloading of different specific information from the server apparatus 2102 by the user of the information processing terminal 2101 and updating the specific information of the program with the new specific information.
The present invention is conceived in view of issues such as those mentioned above and has as a first objective to provide a server that prevents an unauthorized information processing terminal that has been revoked according to a list using specific information in a server apparatus which is the program distribution source, from avoiding such revocation by obtaining new specific information. Furthermore, the present invention also has the objective of reducing the process load for a server apparatus, with regard to program distribution to an information processing terminal.
Furthermore, the present invention has as another objective to provide a program management system that can prevent unauthorized usage of a program by an information processing terminal by revoking an obtainment request for new specific information from an unauthorized information processing terminal, in the program managing system where program distribution is carried out between a server apparatus and an information processing terminal.